
package com.fire.eyes.service;

import com.fire.eyes.model.NoticeModel;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.baomidou.mybatisplus.plugins.Page;
import com.fire.eyes.model.UserLoginModel;

import java.util.List;
import java.util.Map;


/**
 * 通知Service
 *
 * @author Matthew
 * @Date 2019-01-21 19:46
 */
public interface INoticeService extends IService<NoticeModel> {

	/**
	 * 根据 model 条件，查询一条记录
	 * @param model 实体对象 非空
	 * @return NoticeModel
	 */
	NoticeModel selectOne(NoticeModel model);

	/**
	 * 根据 entity 条件，查询全部记录
	 * @param model 实体对象封装操作类（可以为 null）
	 * @return List<NoticeModel>
	 */
	List<NoticeModel> selectList(NoticeModel model);

	/**
	 * 根据 Wrapper 条件，分页查询记录
	 * @param currentPage 当前页码
	 * @param pageSize 每页条数
	 * @param wrapper 条件
	 */
	Page<NoticeModel> selectPage(int currentPage, int pageSize, Wrapper<NoticeModel> wrapper);

	/**
	 * 根据 Wrapper 条件，分页查询Map记录
	 * @param currentPage 当前页码
	 * @param pageSize 每页条数
	 * @param wrapper 条件
	 */
	Page<Map<String, Object>> selectMapsPage(int currentPage, int pageSize, Wrapper<NoticeModel> wrapper);
	/**
	 * 当前用户查找自己上次登陆后的所有（不区分任何类型的）新增消息
	 * */
	 List<NoticeModel> queryAllNotice(UserLoginModel userLoginModel);
	/**
	 * 当前用户第一次登录的情况下判断之前的所有记录,
	 * */
	List<NoticeModel> queryFirstLoginNotice(UserLoginModel userLoginModel);


}
